工控網首頁
>

新聞中心

>

新品速遞

>

MCGS近期推出新功能,“腳本驅動”與用戶面對面

MCGS近期推出新功能,“腳本驅動”與用戶面對面

張波(化名)是福建省廈門市一家很有名的工控儀表生產廠家的技術人員,該廠家是昆侖通態MCGS組態軟件的老客戶,每年都使用200套以上的MCGS組態軟件,張波的主要工作是為該廠家的各種儀表編寫MCGS組態軟件的設備驅動程序。
  昆侖通態在2002年推出了nTouch系列嵌入式一體化工控機和MCGS嵌入式組態軟件。廈門這一廠家在對昆侖通態這兩款產品進行試用和論證后,決定采用nTouch和MCGS應用到其工程項目中。于是派張波到北京出差,學習如何使用Embeded VC開發MCGS嵌入式組態軟件的設備驅動程序。
  張波是昆侖通態的老朋友,大家都比較熟悉。在昆侖通態學習的空閑時間里四處走動,他發現昆侖通態測試部門的員工正在認真地測試一個軟件,詢問之后得知,這是昆侖通態準備在近期推出的MCGS組態軟件新功能的一部分,名叫MCGS腳本驅動開發程序,覺得非常好奇,于是找到該項目的負責人侯尚秋,與侯尚秋有了如下一段對話。

張波(以下簡稱張):什么是腳本驅動?
侯尚秋(以下簡稱侯):
  腳本驅動是我們推出的一種使用MCGS腳本編寫設備驅動程序的技術。
  使用腳本驅動,您不需要使用復雜的VC、DELPHI、VB等開發語言,不需要理解動態連接庫、COM接口等復雜的技術。您只需要使用我們提供的開發工具,做一些簡單的設置,編寫一些簡單的腳本,就可以完成一個設備驅動程序。

張:為什么需要腳本驅動?
侯:在組態軟件的應用中,需要與各種智能設備通訊。一般組態軟件都是通過VC、DELPHI或者VB等高級語言編寫動態庫程序,通過組態軟件提供的接口,實現采集設備數據并和組態軟件通訊。
  這種方式目前在組態軟件中應用廣泛。但存在其不足之處。尤其是對于一些簡單的設備,或者用戶自己開發的設備。
  這種設備的通訊協議本身非常簡單,但客戶不得不委托組態軟件的開發商開發設備驅動程序,而組態軟件廠商的開發人員往往沒有實際的設備,只能根據用戶提供的協議完成代碼編程。實際用戶在現場使用,如果出現問題,又需要返回廠商修改,有時不得不反復數次才能解決問題。給用戶造成了人力、物力、時間上的浪費。
  如果用戶希望自己開發設備驅動程序,則必須使用組態軟件廠商提供的開發框架和接口進行開發。理解框架和接口本身就是一件費時費力的事情,同時還需要了解具體的串口、網絡、端口等方面的知識。
  腳本驅動屏蔽了大量的技術細節。用戶需要關心的事情只有一件,就是分析設備的通訊協議,解析從設備讀取的數據。這樣,用戶可以自己完成設備驅動的編寫、調試和現場應用,就可以在最短的時間內,開發出滿足需要的設備驅動程序。

張:腳本驅動難不難呀?
侯:不難,簡單是腳本驅動程序最大的特點。
  腳本驅動程序是專為簡化驅動開發過程設計的,只要會使用MCGS軟件,在4、5個小時的時間內,就可以全面掌握腳本驅動程序開發過程。熟練之后,甚至只需要30分鐘就可以完成一個象泓格7017模塊的驅動。

張:哪些設備可以用腳本編寫驅動?
侯:理論上,所有串口設備、MODEM設備、以太網通訊設備和板卡設備都可以使用腳本驅動程序開發驅動。最適合使用腳本驅動的有:單片機,傳感器,智能模塊,智能儀表,常見PCI板卡等。
  我們對我們所編寫的全部設備驅動程序的代碼作了統計分析,分析后發現,70%以上的設備驅動程序,其代碼量在200行以內。這些設備的特點是協議比較簡單,通道較少,對協議的解析和命令合成過程不是很復雜。腳本驅動針對這些設備,提供了必要的數據收發,協議解析,通道賦值等方面的功能。開發這些類型的驅動程序,腳本驅動使用方便、調試簡單、工作量小。

張:通訊協議復雜的設備怎么辦?
侯:對于通訊協議復雜的設備,如PLC和一些國外的儀表等,理論上也可以使用腳本驅動開發,但是并不是最合適的。這類設備代碼量大,調試復雜,一般應由組態廠商的設備驅動人員為用戶完成。
  腳本驅動程序推出的目標,并不是代替目前的設備驅動開發方式,而是提供給用戶一種新的選擇。

張:對于MCGS的用戶,是不是都要學習使用腳本驅動?
侯:對于MCGS的用戶,包括組態用戶和最終用戶,都不會發覺MCGS在設備處理方面有任何變化,腳本驅動編寫的設備驅動程序,與一般的設備驅動程序的使用方式是沒有任何區別的。
  腳本驅動程序的使用對象,一是我公司內部的驅動開發人員,二是我公司的技術支持人員和銷售人員,三是需要自己編寫驅動的客戶。我們在公司內部的要求是:所有技術支持人員和銷售人員都要掌握腳本驅動編寫的方法,其目標是加快客戶服務的速度。

張:不知其速度和性能如何?
侯:這是一個每個使用腳本驅動程序的人員都會問的一個問題,特別是在嵌入式系統的應用中,速度更是一個非常關鍵的問題。
  我們在內部做了實驗,MCGS的腳本語言比VC代碼平均慢10倍。但對通訊程序而言,速度的瓶頸是在對串口、以太網等的讀寫上。我們已將對串口讀寫、以太網等的讀寫操作進行了精心的封裝,這一部分代碼全部是使用C語言編寫的,腳本驅動程序只需要調用該部分的函數接口,即可完成一次完整的通訊過程。經過大量的極限測試,我們得出結論,其速度和性能完全能滿足現場設備的需要。

張:你剛才講到精心的封裝,能不能具體介紹一下這方面的內容?
侯:這方面的內容,涉及到比較多的計算機知識,我只大概地描述一下,我只針對串口通訊來進行說明。
  對于串口通訊,最底層的操作是通過INP和OUP對端口3F8或2F8進行操作,目前編程人員一般不直接采用這種方式了。VC編程人員是通過ReadFile和WriteFile兩個API接口函數進行串口操作的;DELPHI一般使用SPCOMM等構件進行串口操作;VB則一般使用MSCOMM控件進行串口操作。
VB和DELPHI對串口操作即進行了封裝,將大量的串口操作細節封裝在控件或構件的內部,用戶只需要調用該控件的屬性和方法,即可完成通訊參數的設置和通訊了。
  腳本驅動中,對串口操作的封裝更加強大,我們分析了歷年來我們為客戶編寫的大量設備驅動程序,歸納出幾種典型的串口通訊模式,并將這些串口通訊模式進行封裝。現在,用戶只要調用一個接口函數,就可以完成數據發送、等待、接收等全過程。

張:我聽不太懂,我對VB比較熟悉,我能很快熟悉腳本驅動嗎?
侯:如果您打開MCGS提供的腳本驅動開發工具,你一定會發現:這個工具多么象VB的編譯器呀,包括界面風格、語法等,還有與VB類似的單步跟蹤和調試手段呢。

張:腳本驅動只能運行在MCGS嵌入版本嗎?
侯:不,腳本驅動可以運行在MCGS的三個版本中,即在嵌入版本、通用版本和網絡版本都可以應用。
  而且,腳本驅動還有一個特點,即:一次編寫,無需編譯。您在MCGS嵌入版本中編寫的腳本驅動,可以直接在通用版本或網絡版本上使用。

張:腳本驅動的穩定性如何?
侯:主程序可以控制腳本驅動的所有異常訪問并加以判斷處理。使用腳本驅動,絕不會出現象C語言編寫的驅動程序那樣,動不動就出現非法指針訪問的情況,也不會出現VB那樣對內存的非法操作情況。

張:能不能給我演示一下?
侯:好的。




(1小時后,張波已編寫并調試了他廠家生產的某一款儀表的腳本驅動。)

張:這對我們這些系統制造商或其它系統集成商來說,真是一件天大的好事,它什么時間發布?
侯:目前腳本驅動正在緊張的測試中,預計嵌入版本的腳本驅動程序在一個月之后正式發布,通用版本和網絡版本的腳本驅動程序在三個月之后正式發布。

張:看來我不需要學習EMBEDED VC和VB了,能不能給我拿一套試用版本,我先試試?
侯:可以呀。能為您和那些支持我們昆侖通態事業發展的朋友效勞,是我們的榮幸。
  我的EMAIL:mcgslcb@263.net。如果您在試用過程中對我們的產品有任何意見或者建議,也請與我們聯系。
投訴建議

提交

查看更多評論
其他資訊

查看更多

昆侖通態 MCGS_中級教程

昆侖通態 MCGS_初級教程

昆侖通態 硬件手冊_TPC1061Hn

昆侖通態 MCGS_嵌入版_西門子S7-300/400以太網驅動

昆侖通態 MCGS_嵌入版_西門子S7-200PPI驅動